home *** CD-ROM | disk | FTP | other *** search
/ Mastering Web Site Development / Microsoft Mastering Web Site Development (Microsoft) (1997).iso / Labs / StateUFinal / classList.asp < prev    next >
Text File  |  1997-04-24  |  17KB  |  461 lines

  1. <%@ LANGUAGE="VBScript" %>
  2.  
  3. <%
  4. '-------------------------------------------------------------------------------
  5. ' Microsoft Visual InterDev - Data Form Wizard
  6. ' List Page
  7. '
  8. ' (c) 1997 Microsoft Corporation.  All Rights Reserved.
  9. '
  10. ' This file is an Active Server Page that contains the list view of a Data Form. 
  11. ' It requires Microsoft Internet Information Server 3.0 and can be displayed
  12. ' using any browser that supports tables. You can edit this file to further 
  13. ' customize the list view.
  14. '
  15. '-------------------------------------------------------------------------------
  16.  
  17. Dim strPagingMove
  18. Dim strDFName
  19. strDFName = "rsclassClasses"
  20. %>
  21.  
  22. <SCRIPT RUNAT=Server LANGUAGE="VBScript">
  23.  
  24. '---- DataTypeEnum Values ----
  25. Const adUnsignedTinyInt = 17
  26. Const adBoolean = 11
  27. Const adLongVarChar = 201
  28. Const adLongVarWChar = 203
  29. Const adBinary = 128
  30. Const adVarBinary = 204
  31. Const adLongVarBinary = 205
  32.  
  33. '-------------------------------------------------------------------------------
  34. ' Purpose:  Substitutes Empty for Null and trims leading/trailing spaces
  35. ' Inputs:   varTemp    - the target value
  36. ' Returns:    The processed value
  37. '-------------------------------------------------------------------------------
  38.  
  39. Function ConvertNull(varTemp)
  40.     If IsNull(varTemp) Then
  41.         ConvertNull = ""
  42.     Else
  43.         ConvertNull = Trim(varTemp)
  44.     End If
  45. End Function
  46.  
  47. '-------------------------------------------------------------------------------
  48. ' Purpose:  Embeds bracketing quotes around the string
  49. ' Inputs:   varTemp    - the target value
  50. ' Returns:    The processed value
  51. '-------------------------------------------------------------------------------
  52.  
  53. Function QuotedString(varTemp)
  54.     If IsNull(varTemp) Then
  55.         QuotedString = Chr(34) & Chr(34)
  56.     Else
  57.         QuotedString = Chr(34) & CStr(varTemp) & Chr(34)
  58.     End If
  59. End Function
  60.  
  61. '-------------------------------------------------------------------------------
  62. ' Purpose:  Tests string to see if it is a URL by looking for protocol
  63. ' Inputs:   varTemp    - the target value
  64. ' Returns:    True - if is URL, False if not
  65. '-------------------------------------------------------------------------------
  66.  
  67. Function IsURL(varTemp)
  68.     IsURL = True
  69.     If UCase(Left(Trim(varTemp), 6)) = "HTTP:/" Then Exit Function
  70.     If UCase(Left(Trim(varTemp), 6)) = "FILE:/" Then Exit Function
  71.     If UCase(Left(Trim(varTemp), 8)) = "MAILTO:/" Then Exit Function
  72.     If UCase(Left(Trim(varTemp), 5)) = "FTP:/" Then Exit Function
  73.     If UCase(Left(Trim(varTemp), 8)) = "GOPHER:/" Then Exit Function
  74.     If UCase(Left(Trim(varTemp), 6)) = "NEWS:/" Then Exit Function
  75.     If UCase(Left(Trim(varTemp), 7)) = "HTTPS:/" Then Exit Function
  76.     If UCase(Left(Trim(varTemp), 8)) = "TELNET:/" Then Exit Function
  77.     If UCase(Left(Trim(varTemp), 6)) = "NNTP:/" Then Exit Function
  78.     IsURL = False
  79. End Function
  80.  
  81. '-------------------------------------------------------------------------------
  82. ' Purpose:  Handles the display of a field from a recordset depending
  83. '            on its data type, attributes, and the current mode.
  84. ' Assumes:     That the recordset containing the field is open
  85. ' Inputs:   strFieldName     - the name of the field in the recordset
  86. '            avarLookup        - array of lookup values
  87. '-------------------------------------------------------------------------------
  88.  
  89. Function ShowField(strFieldName, avarLookup)
  90.     Dim intRow
  91.     Dim strPartial
  92.     Dim strBool
  93.     Dim nPos
  94.     strFieldValue = ""
  95.     nPos=Instr(strFieldName,".")
  96.     Do While nPos > 0 
  97.         strFieldName= Mid (strFieldName, nPos+1)
  98.         nPos=Instr(strFieldName,".")
  99.     Loop 
  100.     If Not IsNull(avarLookup) Then
  101.         Response.Write "<TD BGCOLOR=White NOWRAP><FONT SIZE=-1>" 
  102.         For intRow = 0 to UBound(avarLookup, 2)
  103.             If ConvertNull(avarLookup(0, intRow)) = ConvertNull(rsclassClasses(strFieldName)) Then
  104.                 Response.Write Server.HTMLEncode(ConvertNull(avarLookup(1, intRow)))
  105.                 Exit For
  106.             End If
  107.         Next
  108.         Response.Write "</FONT></TD>"
  109.         Exit Function
  110.     End If
  111.     
  112.     Select Case rsclassClasses(strFieldName).Type
  113.         Case adBoolean, adUnsignedTinyInt                'Boolean
  114.             strBool = ""
  115.             If rsclassClasses(strFieldName) <> 0 Then
  116.                 strBool = "True"
  117.             Else
  118.                 strBool = "False"
  119.             End If
  120.             Response.Write "<TD BGCOLOR=White ><FONT SIZE=-1>" & strBool & "</FONT></TD>"
  121.             
  122.         Case adBinary, adVarBinary, adLongVarBinary        'Binary
  123.             Response.Write "<TD BGCOLOR=White ><FONT SIZE=-1>[Binary]</FONT></TD>"
  124.             
  125.         Case adLongVarChar, adLongVarWChar                'Memo
  126.             Response.Write "<TD BGCOLOR=White NOWRAP><FONT SIZE=-1>"
  127.             strPartial = Left(rsclassClasses(strFieldName), 50)            
  128.             If ConvertNull(strPartial) = "" Then
  129.                 Response.Write " "
  130.             Else
  131.                 Response.Write Server.HTMLEncode(strPartial)
  132.             End If
  133.             If rsclassClasses(strFieldName).ActualSize > 50 Then Response.Write "..."
  134.             Response.Write "</FONT></TD>"
  135.             
  136.         Case Else
  137.             Response.Write "<TD BGCOLOR=White ALIGN=Left NOWRAP><FONT SIZE=-1>"
  138.             If ConvertNull(rsclassClasses(strFieldName)) = "" Then
  139.                 Response.Write " "
  140.             Else
  141.                 ' Check for special field types
  142.                 Select Case UCase(Left(rsclassClasses(strFieldName).Name, 4))
  143.                     Case "URL_"
  144.                         Response.Write "<A HREF=" & QuotedString(rsclassClasses(strFieldName)) & ">"
  145.                         Response.Write Server.HTMLEncode(ConvertNull(rsclassClasses(strFieldName)))
  146.                         Response.Write "</A>"
  147.                     Case Else
  148.                         If IsURL(rsclassClasses(strFieldName)) Then
  149.                             Response.Write "<A HREF=" & QuotedString(rsclassClasses(strFieldName)) & ">"
  150.                             Response.Write Server.HTMLEncode(ConvertNull(rsclassClasses(strFieldName)))
  151.                             Response.Write "</A>"
  152.                         Else
  153.                             Response.Write Server.HTMLEncode(ConvertNull(rsclassClasses(strFieldName)))
  154.                         End If
  155.                 End Select
  156.             End If
  157.             Response.Write "</FONT></TD>"
  158.     End Select
  159. End Function
  160.  
  161. </SCRIPT>
  162.  
  163. <HTML>
  164. <HEAD>
  165.     <META NAME="GENERATOR" CONTENT="Microsoft Visual InterDev">
  166.     <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  167.     <META NAME="Keywords" CONTENT="Microsoft Data Form, Class List List">
  168.     <TITLE>Class List List</TITLE>
  169. </HEAD>
  170.  
  171. <!--------------------------- Formatting Section ------------------------------>
  172.  
  173. <BASEFONT FACE="Arial, Helvetica, sans-serif">
  174. <LINK REL=STYLESHEET HREF="./Stylesheets/Grid/Style2.css">
  175. <BODY BACKGROUND="./Images/Grid/Background/Back2.jpg" BGCOLOR=White>
  176.  
  177. <!---------------------------- Lookups Section ------------------------------->
  178.  
  179. <!---------------------------- Heading Section ------------------------------->
  180.  
  181. <% Response.Write "<FORM ACTION=classForm.asp METHOD=""POST"">" %>
  182. <TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=0 BORDER=0>
  183.     <TR>
  184.         <TH NOWRAP BGCOLOR=Silver ALIGN=Left BACKGROUND="./Images/Grid/Navigation/Nav1.jpg" >
  185.             <FONT SIZE=6> Class List</FONT>
  186.         </TH>
  187.         <TD BGCOLOR=Silver VALIGN=Middle ALIGN=Right WIDTH=100% BACKGROUND="./Images/Grid/Navigation/Nav1.jpg">
  188.             <INPUT TYPE="Hidden" NAME="FormMode" VALUE="Edit">
  189.              <INPUT TYPE="SUBMIT" NAME="DataAction" VALUE="Form View"> 
  190.         </TD>
  191.     </TR>
  192.     <TR>
  193.         <TD BGCOLOR=#FFFFCC COLSPAN=3>
  194.             <FONT SIZE=-1>  
  195.             <% 
  196.             If IsEmpty(Session("rsclassClasses_Filter")) Or Session("rsclassClasses_Filter")="" Then
  197.                 Response.Write "Current Filter: None<BR>"
  198.             Else
  199.                 Response.Write "Current Filter: " & Session("rsclassClasses_FilterDisplay") & "<BR>"
  200.             End If 
  201.             %>
  202.             </FONT>
  203.         </TD>
  204.     </TR></TABLE>
  205. </FORM>
  206.  
  207. <!----------------------------- List Section --------------------------------->
  208.  
  209. <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100% >
  210. <TR>
  211. <TD WIDTH=20> </TD>
  212. <TD>
  213. <TABLE CELLSPACING=1 CELLPADDING=1 BORDER=0 WIDTH=100% >
  214.     <TR BGCOLOR=SILVER VALIGN=TOP>
  215.         <TD ALIGN=Center><FONT SIZE=-1> # </FONT></TD>
  216.         <TD ALIGN=Left><FONT SIZE=-1><B>ClassID</B></FONT></TD>
  217.         <TD ALIGN=Left><FONT SIZE=-1><B>Title</B></FONT></TD>
  218.         <TD ALIGN=Left><FONT SIZE=-1><B>MajorID</B></FONT></TD>
  219.         <TD ALIGN=Left><FONT SIZE=-1><B>Seats</B></FONT></TD>
  220.         <TD ALIGN=Left><FONT SIZE=-1><B>StartDate</B></FONT></TD>
  221.     </TR>
  222.  
  223. <!--METADATA TYPE="DesignerControl" startspan
  224.     <OBJECT ID="rsclassClasses" WIDTH=151 HEIGHT=24
  225.         CLASSID="CLSID:F602E721-A281-11CF-A5B7-0080C73AAC7E">
  226.         <PARAM NAME="BarAlignment" VALUE="0">
  227.            <PARAM NAME="PageSize" VALUE="10">
  228.         <PARAM Name="RangeType" Value="2">
  229.         <PARAM Name="DataConnection" Value="StateU">
  230.         <PARAM Name="CommandType" Value="0">
  231.         <PARAM Name="CommandText" Value="SELECT "ClassID", "Title", "MajorID", "Seats", "StartDate" FROM dbo."Classes"">
  232.         <PARAM Name="CursorType" Value="1">
  233.         <PARAM Name="LockType" Value="3">
  234.         <PARAM Name="CacheRecordset" Value="1">
  235.     </OBJECT>
  236. -->
  237.  
  238. <%
  239. fHideNavBar = False
  240. fHideNumber = False
  241. fHideRequery = False
  242. fHideRule = False
  243. stQueryString = ""
  244. fEmptyRecordset = False
  245. fFirstPass = True
  246. fNeedRecordset = False
  247. fNoRecordset = False
  248. tBarAlignment = "Left"
  249. tHeaderName = "rsclassClasses"
  250. tPageSize = 10
  251. tPagingMove = ""
  252. tRangeType = "Table"
  253. tRecordsProcessed = 0
  254. tPrevAbsolutePage = 0
  255. intCurPos = 0
  256. intNewPos = 0
  257. fSupportsBookmarks = True
  258. fMoveAbsolute = False
  259.  
  260. If Not IsEmpty(Request("rsclassClasses_PagingMove")) Then
  261.     tPagingMove = Trim(Request("rsclassClasses_PagingMove"))
  262. End If
  263.  
  264. If IsEmpty(Session("rsclassClasses_Recordset")) Then
  265.     fNeedRecordset = True
  266. Else
  267.     If Session("rsclassClasses_Recordset") Is Nothing Then
  268.         fNeedRecordset = True
  269.     Else
  270.         Set rsclassClasses = Session("rsclassClasses_Recordset")
  271.     End If
  272. End If
  273.  
  274. If fNeedRecordset Then
  275.     Set StateU = Server.CreateObject("ADODB.Connection")
  276.     StateU.ConnectionTimeout = Session("StateU_ConnectionTimeout")
  277.     StateU.CommandTimeout = Session("StateU_CommandTimeout")
  278.     StateU.Open Session("StateU_ConnectionString"), Session("StateU_RuntimeUserName"), Session("StateU_RuntimePassword")
  279.     Set cmdTemp = Server.CreateObject("ADODB.Command")
  280.     Set rsclassClasses = Server.CreateObject("ADODB.Recordset")
  281.     cmdTemp.CommandText = "SELECT ""ClassID"", ""Title"", ""MajorID"", ""Seats"", ""StartDate"" FROM dbo.""Classes"""
  282.     cmdTemp.CommandType = 1
  283.     Set cmdTemp.ActiveConnection = StateU
  284.     rsclassClasses.Open cmdTemp, , 1, 3
  285. End If
  286. On Error Resume Next
  287. If rsclassClasses.BOF And rsclassClasses.EOF Then fEmptyRecordset = True
  288. On Error Goto 0
  289. If Err Then fEmptyRecordset = True
  290. If fNeedRecordset Then
  291.     Set Session("rsclassClasses_Recordset") = rsclassClasses
  292. End If
  293. rsclassClasses.PageSize = tPageSize
  294. fSupportsBookmarks = rsclassClasses.Supports(8192)
  295.  
  296. If Not IsEmpty(Session("rsclassClasses_Filter")) And Not fEmptyRecordset Then
  297.     rsclassClasses.Filter = Session("rsclassClasses_Filter")
  298.     If rsclassClasses.BOF And rsclassClasses.EOF Then fEmptyRecordset = True
  299. End If
  300.  
  301. If IsEmpty(Session("rsclassClasses_PageSize")) Then Session("rsclassClasses_PageSize") = tPageSize
  302. If IsEmpty(Session("rsclassClasses_AbsolutePage")) Then Session("rsclassClasses_AbsolutePage") = 1
  303.  
  304. If Session("rsclassClasses_PageSize") <> tPageSize Then
  305.     tCurRec = ((Session("rsclassClasses_AbsolutePage") - 1) * Session("rsclassClasses_PageSize")) + 1
  306.     tNewPage = Int(tCurRec / tPageSize)
  307.     If tCurRec Mod tPageSize <> 0 Then
  308.         tNewPage = tNewPage + 1
  309.     End If
  310.     If tNewPage = 0 Then tNewPage = 1
  311.     Session("rsclassClasses_PageSize") = tPageSize
  312.     Session("rsclassClasses_AbsolutePage") = tNewPage
  313. End If
  314.  
  315. If fEmptyRecordset Then
  316.     fHideNavBar = True
  317.     fHideRule = True
  318. Else
  319.     tPrevAbsolutePage = Session("rsclassClasses_AbsolutePage")
  320.     Select Case tPagingMove
  321.         Case ""
  322.             fMoveAbsolute = True
  323.         Case "Requery"
  324.             rsclassClasses.Requery
  325.             fMoveAbsolute = True
  326.         Case "<<"
  327.             Session("rsclassClasses_AbsolutePage") = 1
  328.         Case "<"
  329.             If Session("rsclassClasses_AbsolutePage") > 1 Then
  330.                 Session("rsclassClasses_AbsolutePage") = Session("rsclassClasses_AbsolutePage") - 1
  331.             End If
  332.         Case ">"
  333.             If Not rsclassClasses.EOF Then
  334.                 Session("rsclassClasses_AbsolutePage") = Session("rsclassClasses_AbsolutePage") + 1
  335.             End If
  336.         Case ">>"
  337.             If fSupportsBookmarks Then
  338.                 Session("rsclassClasses_AbsolutePage") = rsclassClasses.PageCount
  339.             End If
  340.     End Select
  341.     Do
  342.         If fSupportsBookmarks Then
  343.             rsclassClasses.AbsolutePage = Session("rsclassClasses_AbsolutePage")
  344.         Else
  345.             If fNeedRecordset Or fMoveAbsolute Or rsclassClasses.EOF Then
  346.                 rsclassClasses.MoveFirst
  347.                 rsclassClasses.Move (Session("rsclassClasses_AbsolutePage") - 1) * tPageSize
  348.             Else
  349.                 intCurPos = ((tPrevAbsolutePage - 1) * tPageSize) + tPageSize
  350.                 intNewPos = ((Session("rsclassClasses_AbsolutePage") - 1) * tPageSize) + 1
  351.                 rsclassClasses.Move intNewPos - intCurPos
  352.             End If
  353.             If rsclassClasses.BOF Then rsclassClasses.MoveNext
  354.         End If
  355.         If Not rsclassClasses.EOF Then Exit Do
  356.         Session("rsclassClasses_AbsolutePage") = Session("rsclassClasses_AbsolutePage") - 1
  357.     Loop
  358. End If
  359.  
  360. Do
  361.     If fEmptyRecordset Then Exit Do
  362.     If tRecordsProcessed = tPageSize Then Exit Do
  363.     If Not fFirstPass Then
  364.         rsclassClasses.MoveNext
  365.     Else
  366.         fFirstPass = False
  367.     End If
  368.     If rsclassClasses.EOF Then Exit Do
  369.     tRecordsProcessed = tRecordsProcessed + 1
  370. %>
  371. <!--METADATA TYPE="DesignerControl" endspan-->
  372.  
  373.     <TR VALIGN=TOP>
  374.         <TD BGCOLOR=White><FONT SIZE=-1>
  375.         <%
  376.         If tPageSize > 0 Then
  377.             tCurRec = ((Session("rsclassClasses_AbsolutePage") - 1) * tPageSize) + tRecordsProcessed
  378.         Else
  379.             tRecordsProcessed = tRecordsProcessed + 1
  380.             tCurRec = tRecordsProcessed
  381.         End If
  382.         Response.Write "<A HREF=" & QuotedString("classAction.asp?Bookmark=" & tCurRec & "&DataAction=Find") & ">" & tCurRec & "</A>"
  383.         %>
  384.  
  385.         </FONT></TD>
  386.         <%
  387.         ShowField "ClassID", Null
  388.         ShowField "Title", Null
  389.         ShowField "MajorID", Null
  390.         ShowField "Seats", Null
  391.         ShowField "StartDate", Null
  392.         fHideRule = True
  393.         %>
  394.     </TR>
  395.  
  396. <!--METADATA TYPE="DesignerControl" startspan
  397.     <OBJECT ID="DataRangeFtr1" WIDTH=151 HEIGHT=24
  398.         CLASSID="CLSID:F602E722-A281-11CF-A5B7-0080C73AAC7E">
  399.     </OBJECT>
  400. -->
  401. <%
  402. Loop
  403. If tRangeType = "Table" Then Response.Write "</TABLE>"
  404. If tPageSize > 0 Then
  405.     If Not fHideRule Then Response.Write "<HR>"
  406.     If Not fHideNavBar Then
  407.         %>
  408.         <TABLE WIDTH=100% >
  409.         <TR>
  410.             <TD WIDTH=100% >
  411.                 <P ALIGN=<%= tBarAlignment %> >
  412.                 <FORM <%= "ACTION=""" & Request.ServerVariables("PATH_INFO") & stQueryString & """" %> METHOD="POST">
  413.                     <INPUT TYPE="Submit" NAME="<%= tHeaderName & "_PagingMove" %>" VALUE="   <<   ">
  414.                     <INPUT TYPE="Submit" NAME="<%= tHeaderName & "_PagingMove" %>" VALUE="   <    ">
  415.                     <INPUT TYPE="Submit" NAME="<%= tHeaderName & "_PagingMove" %>" VALUE="    >   ">
  416.                     <% If fSupportsBookmarks Then %>
  417.                         <INPUT TYPE="Submit" NAME="<%= tHeaderName & "_PagingMove" %>" VALUE="   >>   ">
  418.                     <% End If %>
  419.                     <% If Not fHideRequery Then %>
  420.                         <INPUT TYPE="Submit" NAME="<% =tHeaderName & "_PagingMove" %>" VALUE=" Requery ">
  421.                     <% End If %>
  422.                 </FORM>
  423.                 </P>
  424.             </TD>
  425.             <TD VALIGN=MIDDLE ALIGN=RIGHT>
  426.                 <FONT SIZE=2>
  427.                 <%
  428.                 If Not fHideNumber Then
  429.                     If tPageSize > 1 Then
  430.                         Response.Write "<NOBR>Page: " & Session(tHeaderName & "_AbsolutePage") & "</NOBR>"
  431.                     Else
  432.                         Response.Write "<NOBR>Record: " & Session(tHeaderName & "_AbsolutePage") & "</NOBR>"
  433.                     End If
  434.                 End If
  435.                 %>
  436.                 </FONT>
  437.             </TD>
  438.         </TR>
  439.         </TABLE>
  440.     <%
  441.     End If
  442. End If
  443. %>
  444. <!--METADATA TYPE="DesignerControl" endspan-->
  445.  
  446. <!---------------------------- Footer Section -------------------------------->
  447.  
  448. <% 
  449. ' TEMP: cache here until CacheRecordset property is implemented in
  450. '         data range
  451. If fNeedRecordset Then
  452.     Set Session("rsclassClasses_Recordset") = rsclassClasses
  453. End If 
  454. %>
  455.  
  456. </TD></TR></TABLE>
  457. </BODY>
  458. </HTML>
  459.  
  460.